#include "new_led_driver.h"

// 测试函数声明
void testSetAllPixels();
void testSetPixel();
void testClear();
void testRainbow();

LEDDriver ledDriver;

void setup() {
    Serial.begin(115200);
    Serial.println("Starting LED Driver Test");
    
    // 初始化LED驱动
    ledDriver.init();
    
    // 测试设置所有LED为红色
    Serial.println("Test 1: Set all pixels to red");
    testSetAllPixels();
    delay(2000);
    
    // 测试设置单个LED
    Serial.println("Test 2: Set individual pixels");
    testSetPixel();
    delay(2000);
    
    // 测试清除LED
    Serial.println("Test 3: Clear all pixels");
    testClear();
    delay(2000);
    
    // 测试彩虹效果
    Serial.println("Test 4: Rainbow effect");
    testRainbow();
    delay(2000);
    
    Serial.println("All tests completed");
}

void loop() {
    // 循环测试彩虹效果
    testRainbow();
    delay(100);
}

void testSetAllPixels() {
    ledDriver.setAllPixels(255, 0, 0); // 红色
    ledDriver.show();
}

void testSetPixel() {
    ledDriver.clear();
    for (int i = 0; i < LED_COUNT; i++) {
        ledDriver.setPixel(i, 0, 255, 0); // 绿色
        ledDriver.show();
        delay(100);
    }
}

void testClear() {
    ledDriver.clear();
}

void testRainbow() {
    static uint8_t hue = 0;
    for (int i = 0; i < LED_COUNT; i++) {
        ledDriver.setPixel(i, 255, 0, 0); // 红色
    }
    ledDriver.show();
}